package designPatterns_demo.singleton_pattern.demo2;
/**
 * 
 *
 * Description: 5、懒汉式(线程安全，同步代码块)[不可用]
 *
 * 由于第四种实现方式同步效率太低，所以摒弃同步方法，改为同步产生实例化的的代码块。
 * 但是这种同步并不能起到线程同步的作用。跟第3种实现方式遇到的情形一致，假如一个线程进入了if (singleton == null)判断语句块，
 * 还未来得及往下执行，另一个线程也通过了这个判断语句，这时便会产生多个实例。
 *
 * @author zhangxujun
 * @version 1.0
 * <pre>
 * Modification History: 
 * Date         Author			Version     Description 
 * ------------------------------------------------------------------ 
 * 2017年6月29日      zhangxujun       1.0         1.0 Version 
 * </pre>
 */
public class SingletonDemo5 {
	private static SingletonDemo5 instance;
	
	private SingletonDemo5() {}
	
	public static SingletonDemo5 getInstance() {
		if (null == instance) {
			synchronized (SingletonDemo5.class) {
				instance = new SingletonDemo5();
			}
		}
		return instance;
	}
}
